package com.fowo.api.model.report.receivable;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 应收报告 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class ReportReceivableImportPo {

  /** 店铺 */
  @ExcelProperty("店铺")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String sidsShopName;

  @ExcelIgnore
  @Schema(title = "店铺")
  private String sids;

  /** 店铺名称 */
  @ExcelProperty("店铺名称")
  @Size(max = 50, message = "店铺名称长度不能超过50")
  private String storeName;

  /** 站点 */
  @ExcelProperty("站点")
  @Size(max = 200, message = "站点长度不能超过200")
  private String midsCountry;

  @ExcelIgnore
  @Schema(title = "站点")
  private String mids;

  /** 结算月 */
  @ExcelProperty("结算月")
  @DateString(message = "结算月不是有效的日期格式")
  private String settleMonth;

  /** 对账状态 */
  @ExcelProperty("对账状态")
  @EnumsString(
    value = { "已对账", "未对账" },
    message = "对账状态只能是“已对账”, “未对账”中的一个"
  )
  private String archiveStatus;

  /** 币种 */
  @ExcelProperty("币种")
  private String currencyCode;

  /** 期初余额 */
  @ExcelProperty("期初余额")
  @DecimalString(message = "期初余额小数格式不正确", label = "期初余额")
  private String beginningBalanceCurrencyAmount;

  /** 收入 */
  @ExcelProperty("收入")
  @DecimalString(message = "收入小数格式不正确", label = "收入")
  private String incomeAmount;

  /** 退款 */
  @ExcelProperty("退款")
  @DecimalString(message = "退款小数格式不正确", label = "退款")
  private String refundAmount;

  /** 支出 */
  @ExcelProperty("支出")
  @DecimalString(message = "支出小数格式不正确", label = "支出")
  private String spendAmount;

  /** 其他 */
  @ExcelProperty("其他")
  @DecimalString(message = "其他小数格式不正确", label = "其他")
  private String other;

  /** 转账成功金额 */
  @ExcelProperty("转账成功金额")
  @DecimalString(message = "转账成功金额小数格式不正确", label = "转账成功金额")
  private String convertedSuccessAmount;

  /** 转账失败金额 */
  @ExcelProperty("转账失败金额")
  @DecimalString(message = "转账失败金额小数格式不正确", label = "转账失败金额")
  private String convertedFailedAmount;

  /** 期末余额 */
  @ExcelProperty("期末余额")
  @DecimalString(message = "期末余额小数格式不正确", label = "期末余额")
  private String endingBalance;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remark;

  /** 转账/到账金额 */
  @ExcelProperty("转账/到账金额")
  @EnumsString(
    value = { "不相符", "相符" },
    message = "转账/到账金额只能是“不相符”, “相符”中的一个"
  )
  private String receivedState;

  /** 币种icon */
  @ExcelProperty("币种icon")
  @Size(max = 50, message = "币种icon长度不能超过50")
  private String currencyIcon;
}
